<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>xilsecure: XilSecure AES Client APIs</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">xilsecure
   </div>
   <div id="projectbrief">Vitis Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Overview</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;"
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__xsecure__aes__client__apis.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">XilSecure AES Client APIs</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gaf7eae7e456a1d11d550afb26e22ea199"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xsecure__aes__client__apis.html#gaf7eae7e456a1d11d550afb26e22ea199">XSECURE_AES_INVALID_PARAM</a>&#160;&#160;&#160;(0x51U)</td></tr>
<tr class="memdesc:gaf7eae7e456a1d11d550afb26e22ea199"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid Argument for AES.  <a href="#gaf7eae7e456a1d11d550afb26e22ea199">More...</a><br/></td></tr>
<tr class="separator:gaf7eae7e456a1d11d550afb26e22ea199"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga3be7525f93a2e54baa60c3b1a9df262c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xsecure__aes__client__apis.html#ga3be7525f93a2e54baa60c3b1a9df262c">XSecure_AesKeySource</a> { <br/>
&#160;&#160;<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262caf0c657ebe9923d4838d44337c90cc6a7">XSECURE_AES_BBRAM_KEY</a> = 0,
<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262caacf963544b9e4e371b603a9f66a1404b">XSECURE_AES_BBRAM_RED_KEY</a>,
<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262caa6ffd70735b44d0b80f75f344beca566">XSECURE_AES_BH_KEY</a>,
<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262cafc412e409ab2538a1971c54f917cbbf1">XSECURE_AES_BH_RED_KEY</a>,
<br/>
&#160;&#160;<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262cac1278a39ca4943887c84d5ebe42e1b77">XSECURE_AES_EFUSE_KEY</a>,
<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262ca8585f5fe3bb64ce15874e6338c786bb8">XSECURE_AES_EFUSE_RED_KEY</a>,
<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262cadfa54dce5072be1cc37ae590ce0e4844">XSECURE_AES_EFUSE_USER_KEY_0</a>,
<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262ca5bf5cdf50e0b07a26029220ab8213e14">XSECURE_AES_EFUSE_USER_KEY_1</a>,
<br/>
&#160;&#160;<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262ca1df11b3e22d9684470bda33485b793ae">XSECURE_AES_EFUSE_USER_RED_KEY_0</a>,
<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262caad4d84e71729c279e0078c7014e36bbe">XSECURE_AES_EFUSE_USER_RED_KEY_1</a>,
<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262ca7d8127f4bfb0f1283df773606b56f7cf">XSECURE_AES_KUP_KEY</a>,
<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262ca78b79c2fdd517f30458ffbc9364abbdc">XSECURE_AES_PUF_KEY</a>,
<br/>
&#160;&#160;<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262ca2ed303c437d0f865f4c4af8c6ff8fd82">XSECURE_AES_USER_KEY_0</a>,
<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262caad2ed7c10297dbd5f5b3632e099e25a7">XSECURE_AES_USER_KEY_1</a>,
<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262cae4ac4d063374a434ea4ebb672b7e9b2c">XSECURE_AES_USER_KEY_2</a>,
<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262ca2e8aac0ed6602911daf2103edd6441fd">XSECURE_AES_USER_KEY_3</a>,
<br/>
&#160;&#160;<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262ca6bbe752ad219dc263fdc114399949b7a">XSECURE_AES_USER_KEY_4</a>,
<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262ca1af96660bb5da69424191738f36d4d0d">XSECURE_AES_USER_KEY_5</a>,
<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262cafbe238b0cf0f77f2c027a692fbc18053">XSECURE_AES_USER_KEY_6</a>,
<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262cab5c84ff4a7f15af959065b2e66aa088f">XSECURE_AES_USER_KEY_7</a>,
<br/>
&#160;&#160;<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262cac1b2dfac9fa33633ef8a335b121716ea">XSECURE_AES_EXPANDED_KEYS</a>,
<a class="el" href="group__xsecure__aes__client__apis.html#gga3be7525f93a2e54baa60c3b1a9df262cac0b53728403f2f50005b56e03f562bef">XSECURE_AES_ALL_KEYS</a>
<br/>
 }</td></tr>
<tr class="memdesc:ga3be7525f93a2e54baa60c3b1a9df262c"><td class="mdescLeft">&#160;</td><td class="mdescRight">For selecting the Key source to AES Core.  <a href="group__xsecure__aes__client__apis.html#ga3be7525f93a2e54baa60c3b1a9df262c">More...</a><br/></td></tr>
<tr class="separator:ga3be7525f93a2e54baa60c3b1a9df262c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga55cd9d64e04cce6a57d729b67a5f0c47"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xsecure__aes__client__apis.html#ga55cd9d64e04cce6a57d729b67a5f0c47">XSecure_AesKeySize</a> { <a class="el" href="group__xsecure__aes__server__apis.html#gga55cd9d64e04cce6a57d729b67a5f0c47a2e5b9343d2f9cc0e355b413d6a3848e3">XSECURE_AES_KEY_SIZE_128</a> = 0,
<a class="el" href="group__xsecure__aes__server__apis.html#gga55cd9d64e04cce6a57d729b67a5f0c47afe748ecfca538040238b87ca1bd1dfde">XSECURE_AES_KEY_SIZE_256</a> = 2,
<a class="el" href="group__xsecure__aes__server__apis.html#gga55cd9d64e04cce6a57d729b67a5f0c47a2e5b9343d2f9cc0e355b413d6a3848e3">XSECURE_AES_KEY_SIZE_128</a> = 0,
<a class="el" href="group__xsecure__aes__server__apis.html#gga55cd9d64e04cce6a57d729b67a5f0c47afe748ecfca538040238b87ca1bd1dfde">XSECURE_AES_KEY_SIZE_256</a> = 2
 }</td></tr>
<tr class="memdesc:ga55cd9d64e04cce6a57d729b67a5f0c47"><td class="mdescLeft">&#160;</td><td class="mdescRight">For selecting the Key size to AES Core.  <a href="group__xsecure__aes__client__apis.html#ga55cd9d64e04cce6a57d729b67a5f0c47">More...</a><br/></td></tr>
<tr class="separator:ga55cd9d64e04cce6a57d729b67a5f0c47"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga2768b0d967bc577d2721682881592bb7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xsecure__aes__client__apis.html#ga2768b0d967bc577d2721682881592bb7">XSecure_AesInitialize</a> (XSecure_ClientInstance *InstancePtr)</td></tr>
<tr class="memdesc:ga2768b0d967bc577d2721682881592bb7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends IPI request to initialize the AES engine.  <a href="#ga2768b0d967bc577d2721682881592bb7">More...</a><br/></td></tr>
<tr class="separator:ga2768b0d967bc577d2721682881592bb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga23f9b2bfaf978518d82c19d8331c9cb8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xsecure__aes__client__apis.html#ga23f9b2bfaf978518d82c19d8331c9cb8">XSecure_AesEncryptInit</a> (XSecure_ClientInstance *InstancePtr, <a class="el" href="group__xsecure__aes__client__apis.html#ga3be7525f93a2e54baa60c3b1a9df262c">XSecure_AesKeySource</a> KeySrc, u32 Size, u64 IvAddr)</td></tr>
<tr class="memdesc:ga23f9b2bfaf978518d82c19d8331c9cb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends IPI request to EncryptInit the AES engine.  <a href="#ga23f9b2bfaf978518d82c19d8331c9cb8">More...</a><br/></td></tr>
<tr class="separator:ga23f9b2bfaf978518d82c19d8331c9cb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacea2fc49243f66d0b440a95d1bd6170f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xsecure__aes__client__apis.html#gacea2fc49243f66d0b440a95d1bd6170f">XSecure_AesDecryptInit</a> (XSecure_ClientInstance *InstancePtr, <a class="el" href="group__xsecure__aes__client__apis.html#ga3be7525f93a2e54baa60c3b1a9df262c">XSecure_AesKeySource</a> KeySrc, u32 Size, u64 IvAddr)</td></tr>
<tr class="memdesc:gacea2fc49243f66d0b440a95d1bd6170f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends IPI request to DecryptInit the AES engine.  <a href="#gacea2fc49243f66d0b440a95d1bd6170f">More...</a><br/></td></tr>
<tr class="separator:gacea2fc49243f66d0b440a95d1bd6170f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab23a3dfb8aadcc94500201af5f25b659"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xsecure__aes__client__apis.html#gab23a3dfb8aadcc94500201af5f25b659">XSecure_AesUpdateAad</a> (XSecure_ClientInstance *InstancePtr, u64 AadAddr, u32 AadSize)</td></tr>
<tr class="memdesc:gab23a3dfb8aadcc94500201af5f25b659"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends IPI request to update AAD to AES engine.  <a href="#gab23a3dfb8aadcc94500201af5f25b659">More...</a><br/></td></tr>
<tr class="separator:gab23a3dfb8aadcc94500201af5f25b659"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2c662c76ab7afdb97977628d81604ec1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xsecure__aes__client__apis.html#ga2c662c76ab7afdb97977628d81604ec1">XSecure_AesGmacUpdateAad</a> (XSecure_ClientInstance *InstancePtr, u64 AadAddr, u32 AadSize, u32 IsLastChunkSrc)</td></tr>
<tr class="memdesc:ga2c662c76ab7afdb97977628d81604ec1"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends IPI request to update AAD data to AES engine.  <a href="#ga2c662c76ab7afdb97977628d81604ec1">More...</a><br/></td></tr>
<tr class="separator:ga2c662c76ab7afdb97977628d81604ec1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga162a8009f9d4983d841b517fe53d14c4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xsecure__aes__client__apis.html#ga162a8009f9d4983d841b517fe53d14c4">XSecure_AesEncryptUpdate</a> (XSecure_ClientInstance *InstancePtr, u64 InDataAddr, u64 OutDataAddr, u32 Size, u32 IsLast)</td></tr>
<tr class="memdesc:ga162a8009f9d4983d841b517fe53d14c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends IPI request to update the input data to AES engine for encryption.  <a href="#ga162a8009f9d4983d841b517fe53d14c4">More...</a><br/></td></tr>
<tr class="separator:ga162a8009f9d4983d841b517fe53d14c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga982cb284b765c652355d9f942798211b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xsecure__aes__client__apis.html#ga982cb284b765c652355d9f942798211b">XSecure_AesEncryptFinal</a> (XSecure_ClientInstance *InstancePtr, u64 GcmTagAddr)</td></tr>
<tr class="memdesc:ga982cb284b765c652355d9f942798211b"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends IPI request to update the GcmTag Addr to AES engine.  <a href="#ga982cb284b765c652355d9f942798211b">More...</a><br/></td></tr>
<tr class="separator:ga982cb284b765c652355d9f942798211b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3150fb8656509ac0217c44c9609776cc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xsecure__aes__client__apis.html#ga3150fb8656509ac0217c44c9609776cc">XSecure_AesDecryptUpdate</a> (XSecure_ClientInstance *InstancePtr, u64 InDataAddr, u64 OutDataAddr, u32 Size, u32 IsLast)</td></tr>
<tr class="memdesc:ga3150fb8656509ac0217c44c9609776cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends IPI request to update the encrypted data to AES engine for decryption.  <a href="#ga3150fb8656509ac0217c44c9609776cc">More...</a><br/></td></tr>
<tr class="separator:ga3150fb8656509ac0217c44c9609776cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga49114523757f3b39daf51876ba899e51"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xsecure__aes__client__apis.html#ga49114523757f3b39daf51876ba899e51">XSecure_AesDecryptFinal</a> (XSecure_ClientInstance *InstancePtr, u64 GcmTagAddr)</td></tr>
<tr class="memdesc:ga49114523757f3b39daf51876ba899e51"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends IPI request to verify the GcmTag provided for the data decrypted till the point.  <a href="#ga49114523757f3b39daf51876ba899e51">More...</a><br/></td></tr>
<tr class="separator:ga49114523757f3b39daf51876ba899e51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa3c4b19232e0c5fa8cf14d69410e31e7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xsecure__aes__client__apis.html#gaa3c4b19232e0c5fa8cf14d69410e31e7">XSecure_AesKeyZero</a> (XSecure_ClientInstance *InstancePtr, <a class="el" href="group__xsecure__aes__client__apis.html#ga3be7525f93a2e54baa60c3b1a9df262c">XSecure_AesKeySource</a> KeySrc)</td></tr>
<tr class="memdesc:gaa3c4b19232e0c5fa8cf14d69410e31e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends IPI request to zeroize selected AES key storage register.  <a href="#gaa3c4b19232e0c5fa8cf14d69410e31e7">More...</a><br/></td></tr>
<tr class="separator:gaa3c4b19232e0c5fa8cf14d69410e31e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga056f80ac76299a3ed41102b9f21237e7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xsecure__aes__client__apis.html#ga056f80ac76299a3ed41102b9f21237e7">XSecure_AesWriteKey</a> (XSecure_ClientInstance *InstancePtr, <a class="el" href="group__xsecure__aes__client__apis.html#ga3be7525f93a2e54baa60c3b1a9df262c">XSecure_AesKeySource</a> KeySrc, u32 Size, u64 KeyAddr)</td></tr>
<tr class="memdesc:ga056f80ac76299a3ed41102b9f21237e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends IPI request to write the key provided into the specified AES key registers.  <a href="#ga056f80ac76299a3ed41102b9f21237e7">More...</a><br/></td></tr>
<tr class="separator:ga056f80ac76299a3ed41102b9f21237e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5336eb4fdbdbd4c48776776c4524653e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xsecure__aes__client__apis.html#ga5336eb4fdbdbd4c48776776c4524653e">XSecure_AesKekDecrypt</a> (XSecure_ClientInstance *InstancePtr, u64 IvAddr, <a class="el" href="group__xsecure__aes__client__apis.html#ga3be7525f93a2e54baa60c3b1a9df262c">XSecure_AesKeySource</a> DstKeySrc, <a class="el" href="group__xsecure__aes__client__apis.html#ga3be7525f93a2e54baa60c3b1a9df262c">XSecure_AesKeySource</a> DecKeySrc, <a class="el" href="group__xsecure__aes__client__apis.html#ga55cd9d64e04cce6a57d729b67a5f0c47">XSecure_AesKeySize</a> Size)</td></tr>
<tr class="memdesc:ga5336eb4fdbdbd4c48776776c4524653e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends IPI request to decrypt the key in KEK key form.  <a href="#ga5336eb4fdbdbd4c48776776c4524653e">More...</a><br/></td></tr>
<tr class="separator:ga5336eb4fdbdbd4c48776776c4524653e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2149f38c111ed53eec28fc05ac1afb1e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xsecure__aes__client__apis.html#ga2149f38c111ed53eec28fc05ac1afb1e">XSecure_AesSetDpaCm</a> (XSecure_ClientInstance *InstancePtr, u8 DpaCmCfg)</td></tr>
<tr class="memdesc:ga2149f38c111ed53eec28fc05ac1afb1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends IPI request to enable/disable DpaCm in AES.  <a href="#ga2149f38c111ed53eec28fc05ac1afb1e">More...</a><br/></td></tr>
<tr class="separator:ga2149f38c111ed53eec28fc05ac1afb1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa65c921632e25a29b33b883d85cf9058"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xsecure__aes__client__apis.html#gaa65c921632e25a29b33b883d85cf9058">XSecure_AesEncryptData</a> (XSecure_ClientInstance *InstancePtr, <a class="el" href="group__xsecure__aes__client__apis.html#ga3be7525f93a2e54baa60c3b1a9df262c">XSecure_AesKeySource</a> KeySrc, u32 KeySize, u64 IvAddr, u64 InDataAddr, u64 OutDataAddr, u32 Size, u64 GcmTagAddr)</td></tr>
<tr class="memdesc:gaa65c921632e25a29b33b883d85cf9058"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function calls IPI request to encrypt a single block of data.  <a href="#gaa65c921632e25a29b33b883d85cf9058">More...</a><br/></td></tr>
<tr class="separator:gaa65c921632e25a29b33b883d85cf9058"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga074dbaf57b453f094f14c6b6c7aca964"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xsecure__aes__client__apis.html#ga074dbaf57b453f094f14c6b6c7aca964">XSecure_AesDecryptData</a> (XSecure_ClientInstance *InstancePtr, <a class="el" href="group__xsecure__aes__client__apis.html#ga3be7525f93a2e54baa60c3b1a9df262c">XSecure_AesKeySource</a> KeySrc, u32 KeySize, u64 IvAddr, u64 InDataAddr, u64 OutDataAddr, u32 Size, u64 GcmTagAddr)</td></tr>
<tr class="memdesc:ga074dbaf57b453f094f14c6b6c7aca964"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function calls IPI request to decrypt a single block of data.  <a href="#ga074dbaf57b453f094f14c6b6c7aca964">More...</a><br/></td></tr>
<tr class="separator:ga074dbaf57b453f094f14c6b6c7aca964"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1be5abccbec8cce45963a979c72828e1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xsecure__aes__client__apis.html#ga1be5abccbec8cce45963a979c72828e1">XSecure_AesPerformOperation</a> (const XSecure_ClientInstance *InstancePtr, const <a class="el" href="struct_x_secure___aes_data_block_params.html">XSecure_AesDataBlockParams</a> *AesDataParams)</td></tr>
<tr class="memdesc:ga1be5abccbec8cce45963a979c72828e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function calls IPI request to encrypt/decrypt a single block of data along with update AAD/GMAC based on the user's choice.  <a href="#ga1be5abccbec8cce45963a979c72828e1">More...</a><br/></td></tr>
<tr class="separator:ga1be5abccbec8cce45963a979c72828e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga92901f6856f8e7ea38caac86fb44e10b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xsecure__aes__client__apis.html#ga92901f6856f8e7ea38caac86fb44e10b">XSecure_AesPerformOperationAndZeroizeKey</a> (XSecure_ClientInstance *InstancePtr, u64 KeyAddr, const <a class="el" href="struct_x_secure___aes_data_block_params.html">XSecure_AesDataBlockParams</a> *AesDataParams)</td></tr>
<tr class="memdesc:ga92901f6856f8e7ea38caac86fb44e10b"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function calls IPI request to perform below operation:  <a href="#ga92901f6856f8e7ea38caac86fb44e10b">More...</a><br/></td></tr>
<tr class="separator:ga92901f6856f8e7ea38caac86fb44e10b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="gaf7eae7e456a1d11d550afb26e22ea199"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XSECURE_AES_INVALID_PARAM&#160;&#160;&#160;(0x51U)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Invalid Argument for AES. </p>

<p>Referenced by <a class="el" href="group__xsecure__aes__server__apis.html#gabf062a667c2c2204b6e15c1a5dc689dd">XSecure_AesCfgKupKeyNIv()</a>, <a class="el" href="group__xsecure__aes__server__apis.html#ga7ba70bdc53e1ee1cef9065218b53a624">XSecure_AesDecryptData()</a>, <a class="el" href="group__xsecure__aes__server__apis.html#ga42ab2048d7363ba51f6d9c4e9c93d88e">XSecure_AesEcbCfg()</a>, <a class="el" href="group__xsecure__aes__server__apis.html#gae22634123b8e2b07d0fd2959ccb99709">XSecure_AesEncryptFinal()</a>, <a class="el" href="group__xsecure__aes__server__apis.html#ga62c2d78201f34ec93974d43035f71794">XSecure_AesGetNxtBlkLen()</a>, <a class="el" href="group__xsecure__aes__server__apis.html#ga8adf6430b44ff6b7acf7df53a34df9b1">XSecure_AesGmacCfg()</a>, <a class="el" href="group__xsecure__aes__client__apis.html#ga5336eb4fdbdbd4c48776776c4524653e">XSecure_AesKekDecrypt()</a>, <a class="el" href="group__xsecure__aes__server__apis.html#gaa7f952e1399a6303328d40d8e251460c">XSecure_AesKeyWrite()</a>, <a class="el" href="group__xsecure__aes__server__apis.html#ga951b41e7a8b8a9ce252cdd640f69a8dc">XSecure_AesKeyZero()</a>, <a class="el" href="group__xsecure__aes__server__apis.html#ga6b5414d0bffdebf14b418d2d05135faa">XSecure_AesKeyZeroize()</a>, <a class="el" href="group__xsecure__aes__client__apis.html#ga1be5abccbec8cce45963a979c72828e1">XSecure_AesPerformOperation()</a>, <a class="el" href="group__xsecure__helper__server__apis.html#ga9224168b6fa6d11f59c50046f2221d11">XSecure_AesPlatPmcDmaCfgAndXfer()</a>, <a class="el" href="group__xsecure__aes__server__apis.html#gaf7009ee23d2f452bbcad0b44a7e162bc">XSecure_AesSetDpaCm()</a>, <a class="el" href="group__xsecure__aes__server__apis.html#ga1d71c3a289fb13edf97bdd3ac8945e39">XSecure_AesUpdateAad()</a>, <a class="el" href="group__xsecure__aes__server__apis.html#gaeca8eaab9e67f642a1196aa2bc3e9492">XSecure_AesUpdateAadAndValidate()</a>, and <a class="el" href="group__xsecure__aes__server__apis.html#ga23c59319450ef4fac730de6019d36a5a">XSecure_AesWriteKey()</a>.</p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga55cd9d64e04cce6a57d729b67a5f0c47"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__xsecure__aes__client__apis.html#ga55cd9d64e04cce6a57d729b67a5f0c47">XSecure_AesKeySize</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>For selecting the Key size to AES Core. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga55cd9d64e04cce6a57d729b67a5f0c47a2e5b9343d2f9cc0e355b413d6a3848e3"></a>XSECURE_AES_KEY_SIZE_128</em>&nbsp;</td><td class="fielddoc">
<p>Key Length = 16 bytes = 128 bits. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga55cd9d64e04cce6a57d729b67a5f0c47afe748ecfca538040238b87ca1bd1dfde"></a>XSECURE_AES_KEY_SIZE_256</em>&nbsp;</td><td class="fielddoc">
<p>Key Length = 32 bytes = 256 bits. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga55cd9d64e04cce6a57d729b67a5f0c47a2e5b9343d2f9cc0e355b413d6a3848e3"></a>XSECURE_AES_KEY_SIZE_128</em>&nbsp;</td><td class="fielddoc">
<p>Key Length = 32 bytes = 256 bits. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga55cd9d64e04cce6a57d729b67a5f0c47afe748ecfca538040238b87ca1bd1dfde"></a>XSECURE_AES_KEY_SIZE_256</em>&nbsp;</td><td class="fielddoc">
<p>Key Length = 16 bytes = 128 bits. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="ga3be7525f93a2e54baa60c3b1a9df262c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__xsecure__aes__client__apis.html#ga3be7525f93a2e54baa60c3b1a9df262c">XSecure_AesKeySource</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>For selecting the Key source to AES Core. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262caf0c657ebe9923d4838d44337c90cc6a7"></a>XSECURE_AES_BBRAM_KEY</em>&nbsp;</td><td class="fielddoc">
<p>Bbram key. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262caacf963544b9e4e371b603a9f66a1404b"></a>XSECURE_AES_BBRAM_RED_KEY</em>&nbsp;</td><td class="fielddoc">
<p>Bbram red key. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262caa6ffd70735b44d0b80f75f344beca566"></a>XSECURE_AES_BH_KEY</em>&nbsp;</td><td class="fielddoc">
<p>Boot header key. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262cafc412e409ab2538a1971c54f917cbbf1"></a>XSECURE_AES_BH_RED_KEY</em>&nbsp;</td><td class="fielddoc">
<p>Boot header red key. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262cac1278a39ca4943887c84d5ebe42e1b77"></a>XSECURE_AES_EFUSE_KEY</em>&nbsp;</td><td class="fielddoc">
<p>eFuse key </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262ca8585f5fe3bb64ce15874e6338c786bb8"></a>XSECURE_AES_EFUSE_RED_KEY</em>&nbsp;</td><td class="fielddoc">
<p>eFuse red key </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262cadfa54dce5072be1cc37ae590ce0e4844"></a>XSECURE_AES_EFUSE_USER_KEY_0</em>&nbsp;</td><td class="fielddoc">
<p>eFuse user key 0 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262ca5bf5cdf50e0b07a26029220ab8213e14"></a>XSECURE_AES_EFUSE_USER_KEY_1</em>&nbsp;</td><td class="fielddoc">
<p>eFuse user key 1 </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262ca1df11b3e22d9684470bda33485b793ae"></a>XSECURE_AES_EFUSE_USER_RED_KEY_0</em>&nbsp;</td><td class="fielddoc">
<p>User red key 0. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262caad4d84e71729c279e0078c7014e36bbe"></a>XSECURE_AES_EFUSE_USER_RED_KEY_1</em>&nbsp;</td><td class="fielddoc">
<p>User red key 1. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262ca7d8127f4bfb0f1283df773606b56f7cf"></a>XSECURE_AES_KUP_KEY</em>&nbsp;</td><td class="fielddoc">
<p>Kup key. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262ca78b79c2fdd517f30458ffbc9364abbdc"></a>XSECURE_AES_PUF_KEY</em>&nbsp;</td><td class="fielddoc">
<p>Puf key. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262ca2ed303c437d0f865f4c4af8c6ff8fd82"></a>XSECURE_AES_USER_KEY_0</em>&nbsp;</td><td class="fielddoc">
<p>User key 0. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262caad2ed7c10297dbd5f5b3632e099e25a7"></a>XSECURE_AES_USER_KEY_1</em>&nbsp;</td><td class="fielddoc">
<p>User key 1. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262cae4ac4d063374a434ea4ebb672b7e9b2c"></a>XSECURE_AES_USER_KEY_2</em>&nbsp;</td><td class="fielddoc">
<p>User key 2. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262ca2e8aac0ed6602911daf2103edd6441fd"></a>XSECURE_AES_USER_KEY_3</em>&nbsp;</td><td class="fielddoc">
<p>User key 3. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262ca6bbe752ad219dc263fdc114399949b7a"></a>XSECURE_AES_USER_KEY_4</em>&nbsp;</td><td class="fielddoc">
<p>User key 4. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262ca1af96660bb5da69424191738f36d4d0d"></a>XSECURE_AES_USER_KEY_5</em>&nbsp;</td><td class="fielddoc">
<p>User key 5. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262cafbe238b0cf0f77f2c027a692fbc18053"></a>XSECURE_AES_USER_KEY_6</em>&nbsp;</td><td class="fielddoc">
<p>User key 6. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262cab5c84ff4a7f15af959065b2e66aa088f"></a>XSECURE_AES_USER_KEY_7</em>&nbsp;</td><td class="fielddoc">
<p>User key 7. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262cac1b2dfac9fa33633ef8a335b121716ea"></a>XSECURE_AES_EXPANDED_KEYS</em>&nbsp;</td><td class="fielddoc">
<p>Expanded keys. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga3be7525f93a2e54baa60c3b1a9df262cac0b53728403f2f50005b56e03f562bef"></a>XSECURE_AES_ALL_KEYS</em>&nbsp;</td><td class="fielddoc">
<p>All keys. </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga074dbaf57b453f094f14c6b6c7aca964"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XSecure_AesDecryptData </td>
          <td>(</td>
          <td class="paramtype">XSecure_ClientInstance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__xsecure__aes__client__apis.html#ga3be7525f93a2e54baa60c3b1a9df262c">XSecure_AesKeySource</a>&#160;</td>
          <td class="paramname"><em>KeySrc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>KeySize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>IvAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>InDataAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>OutDataAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>GcmTagAddr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function calls IPI request to decrypt a single block of data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the client instance </td></tr>
    <tr><td class="paramname">KeySrc</td><td>Type of the key </td></tr>
    <tr><td class="paramname">KeySize</td><td>Size of the key </td></tr>
    <tr><td class="paramname">IvAddr</td><td>Address of the IV </td></tr>
    <tr><td class="paramname">InDataAddr</td><td>Address of the encrypted data which needs to be decrypted </td></tr>
    <tr><td class="paramname">OutDataAddr</td><td>Address of buffer where the decrypted data to be updated </td></tr>
    <tr><td class="paramname">Size</td><td>Size of input data to be decrypted </td></tr>
    <tr><td class="paramname">GcmTagAddr</td><td>Address to the buffer of GCM tag</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS On success</li>
<li>XST_FAILURE On failure </li>
</ul>
</dd></dl>
<p>AES Decrypt Init operation</p>
<p>AES Decrypt Update</p>
<p>AES Decrypt Final</p>
<p>AES GMAC operation</p>
<p>Send an IPI request to the PLM by using the CDO command to call XSecure_AesDecryptData API and returns the status of the IPI response.</p>

<p>References <a class="el" href="group__xsecure__common__apis.html#gga48921cbba3a5713caf7d975bedbe36acaffa8a13644e65d5e7776e9198365c5cd">XSECURE_API_AES_PERFORM_OPERATION</a>, <a class="el" href="group__xsecure__common__apis.html#ga4dc28d692c8e56b1837e73a956ddec26">XSecure_DCacheFlushRange</a>, <a class="el" href="group__xsecure__helper__server__apis.html#ggadcb99879df57dfcbb96293bd161933bea542b57e4f70f61000b962a8a0da83fae">XSECURE_DECRYPT</a>, and <a class="el" href="group__xsecure__mailbox__apis.html#ga6ac5f0da32dd8fb5fcd15a7e65b492bb">XSecure_ProcessMailbox()</a>.</p>

<p>Referenced by <a class="el" href="group__xsecure__aes__server__apis.html#gabe78befff27daa757aecc436204e33af">XSecure_AesPerformOperation()</a>.</p>

</div>
</div>
<a class="anchor" id="ga49114523757f3b39daf51876ba899e51"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XSecure_AesDecryptFinal </td>
          <td>(</td>
          <td class="paramtype">XSecure_ClientInstance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>GcmTagAddr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends IPI request to verify the GcmTag provided for the data decrypted till the point. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the client instance </td></tr>
    <tr><td class="paramname">GcmTagAddr</td><td>Address of a buffer which should holds GCM Tag</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS On successful encryption of the data</li>
<li>XST_FAILURE On failure </li>
</ul>
</dd></dl>
<p>Perform input parameter validation on InstancePtr. Return XST_FAILURE if input parameters are invalid</p>
<p>Send an IPI request to the PLM by using the CDO command to call XSecure_AesDecFinal API and returns the status of the IPI response</p>

<p>References <a class="el" href="group__xsecure__common__apis.html#gga48921cbba3a5713caf7d975bedbe36aca18c3a8922609fb6afceea6a068f2baf2">XSECURE_API_AES_DECRYPT_FINAL</a>, and <a class="el" href="group__xsecure__mailbox__apis.html#ga6ac5f0da32dd8fb5fcd15a7e65b492bb">XSecure_ProcessMailbox()</a>.</p>

<p>Referenced by <a class="el" href="group__xsecure__kat__server__apis.html#ga0567b89c7436b6925d6f64ef15b628e0">XSecure_AesDecryptKat()</a>, and <a class="el" href="group__xsecure__aes__server__apis.html#gabe78befff27daa757aecc436204e33af">XSecure_AesPerformOperation()</a>.</p>

</div>
</div>
<a class="anchor" id="gacea2fc49243f66d0b440a95d1bd6170f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XSecure_AesDecryptInit </td>
          <td>(</td>
          <td class="paramtype">XSecure_ClientInstance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__xsecure__aes__client__apis.html#ga3be7525f93a2e54baa60c3b1a9df262c">XSecure_AesKeySource</a>&#160;</td>
          <td class="paramname"><em>KeySrc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>IvAddr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends IPI request to DecryptInit the AES engine. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the client instance </td></tr>
    <tr><td class="paramname">KeySrc</td><td>Type of the Key </td></tr>
    <tr><td class="paramname">Size</td><td>Size of the Key </td></tr>
    <tr><td class="paramname">IvAddr</td><td>Address of the IV</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS If the Decrypt init is successful</li>
<li>XST_FAILURE If there is a failure </li>
</ul>
</dd></dl>
<p>Perform input parameter validation on InstancePtr. Return XST_FAILURE if input parameters are invalid</p>
<p>Link shared memory of size AesParams to AesParams structure for IPI usage. Validates the size of the shared memory whether the required size is available or not.</p>
<p>Send an IPI request to the PLM by using the CDO command to call XSecure_AesOperationInit API and returns the status of the IPI response.</p>

<p>References <a class="el" href="group__xsecure__common__apis.html#gga48921cbba3a5713caf7d975bedbe36acabf47c27ddc6dcbdce2694869cea603aa">XSECURE_API_AES_OP_INIT</a>, <a class="el" href="group__xsecure__common__apis.html#ga4dc28d692c8e56b1837e73a956ddec26">XSecure_DCacheFlushRange</a>, <a class="el" href="group__xsecure__helper__server__apis.html#ggadcb99879df57dfcbb96293bd161933bea542b57e4f70f61000b962a8a0da83fae">XSECURE_DECRYPT</a>, and <a class="el" href="group__xsecure__mailbox__apis.html#ga6ac5f0da32dd8fb5fcd15a7e65b492bb">XSecure_ProcessMailbox()</a>.</p>

<p>Referenced by <a class="el" href="group__xsecure__aes__zynqmp__apis.html#gabaf0da2dbbd5f793378a8cc3700a8ef7">XSecure_AesDecryptData()</a>, and <a class="el" href="group__xsecure__kat__server__apis.html#ga0567b89c7436b6925d6f64ef15b628e0">XSecure_AesDecryptKat()</a>.</p>

</div>
</div>
<a class="anchor" id="ga3150fb8656509ac0217c44c9609776cc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XSecure_AesDecryptUpdate </td>
          <td>(</td>
          <td class="paramtype">XSecure_ClientInstance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>InDataAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>OutDataAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>IsLast</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends IPI request to update the encrypted data to AES engine for decryption. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the client instance </td></tr>
    <tr><td class="paramname">InDataAddr</td><td>Address of the encryped data which needs to be decrypted </td></tr>
    <tr><td class="paramname">OutDataAddr</td><td>Address of the buffer where the decrypted data to be updated </td></tr>
    <tr><td class="paramname">Size</td><td>Size of the input data to be decrypted </td></tr>
    <tr><td class="paramname">IsLast</td><td>If this is the last update of data to be decrypted, this parameter should be set to TRUE otherwise FALSE</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS On successful decryption of the data</li>
<li>XST_FAILURE On failure </li>
</ul>
</dd></dl>
<p>Perform input parameter validation on InstancePtr. Return XST_FAILURE if input parameters are invalid</p>
<p>Link shared memory of size DecInParams to DecInParams structure for IPI usage. Validates the size of the shared memory whether the required size is available or not.</p>
<p>Send an IPI request to the PLM by using the CDO command to call XSecure_AesDecUpdate API and returns the status of the IPI response.</p>

<p>References <a class="el" href="group__xsecure__common__apis.html#gga48921cbba3a5713caf7d975bedbe36aca45d225b8053c332f20fbdb468b21e436">XSECURE_API_AES_DECRYPT_UPDATE</a>, <a class="el" href="group__xsecure__common__apis.html#ga4dc28d692c8e56b1837e73a956ddec26">XSecure_DCacheFlushRange</a>, and <a class="el" href="group__xsecure__mailbox__apis.html#ga6ac5f0da32dd8fb5fcd15a7e65b492bb">XSecure_ProcessMailbox()</a>.</p>

<p>Referenced by <a class="el" href="group__xsecure__aes__zynqmp__apis.html#gabaf0da2dbbd5f793378a8cc3700a8ef7">XSecure_AesDecryptData()</a>, <a class="el" href="group__xsecure__kat__server__apis.html#ga0567b89c7436b6925d6f64ef15b628e0">XSecure_AesDecryptKat()</a>, <a class="el" href="group__xsecure__aes__server__apis.html#ga6422d39ce630dc928daba92a65da4c56">XSecure_AesEcbDecrypt()</a>, and <a class="el" href="group__xsecure__aes__server__apis.html#ga4da9ead453ef1dbeebefeebb377eb94d">XSecure_AesKeyUnwrap()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa65c921632e25a29b33b883d85cf9058"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XSecure_AesEncryptData </td>
          <td>(</td>
          <td class="paramtype">XSecure_ClientInstance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__xsecure__aes__client__apis.html#ga3be7525f93a2e54baa60c3b1a9df262c">XSecure_AesKeySource</a>&#160;</td>
          <td class="paramname"><em>KeySrc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>KeySize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>IvAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>InDataAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>OutDataAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>GcmTagAddr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function calls IPI request to encrypt a single block of data. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the client instance </td></tr>
    <tr><td class="paramname">KeySrc</td><td>Type of the key </td></tr>
    <tr><td class="paramname">KeySize</td><td>Size of the key </td></tr>
    <tr><td class="paramname">IvAddr</td><td>Address of the IV </td></tr>
    <tr><td class="paramname">InDataAddr</td><td>Address of the data which needs to be encrypted </td></tr>
    <tr><td class="paramname">OutDataAddr</td><td>Address of output buffer where the encrypted data to be updated </td></tr>
    <tr><td class="paramname">Size</td><td>Size of data to be encrypted in bytes where number of bytes provided should be multiples of 4 </td></tr>
    <tr><td class="paramname">GcmTagAddr</td><td>Address to the buffer of GCM tag</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS On success</li>
<li>XST_FAILURE On failure </li>
</ul>
</dd></dl>
<p>AES Init operation</p>
<p>AES Encrypt Update</p>
<p>AES Encrypt Final</p>
<p>AES GMAC operation</p>
<p>Send an IPI request to the PLM by using the CDO command to call XSecure_AesEncryptData API and returns the status of the IPI response</p>

<p>References <a class="el" href="group__xsecure__common__apis.html#gga48921cbba3a5713caf7d975bedbe36acaffa8a13644e65d5e7776e9198365c5cd">XSECURE_API_AES_PERFORM_OPERATION</a>, <a class="el" href="group__xsecure__common__apis.html#ga4dc28d692c8e56b1837e73a956ddec26">XSecure_DCacheFlushRange</a>, <a class="el" href="group__xsecure__helper__server__apis.html#ggadcb99879df57dfcbb96293bd161933beae6aac4a684081de8c6c970ef364fd091">XSECURE_ENCRYPT</a>, and <a class="el" href="group__xsecure__mailbox__apis.html#ga6ac5f0da32dd8fb5fcd15a7e65b492bb">XSecure_ProcessMailbox()</a>.</p>

<p>Referenced by <a class="el" href="group__xsecure__aes__server__apis.html#gabe78befff27daa757aecc436204e33af">XSecure_AesPerformOperation()</a>.</p>

</div>
</div>
<a class="anchor" id="ga982cb284b765c652355d9f942798211b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XSecure_AesEncryptFinal </td>
          <td>(</td>
          <td class="paramtype">XSecure_ClientInstance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>GcmTagAddr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends IPI request to update the GcmTag Addr to AES engine. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the client instance </td></tr>
    <tr><td class="paramname">GcmTagAddr</td><td>Address to the buffer of GCM tag size, where the API updates GCM tag</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS On successful encryption of the data</li>
<li>XST_FAILURE On failure </li>
</ul>
</dd></dl>
<p>Perform input parameter validation on InstancePtr. Return XST_FAILURE if input parameters are invalid</p>
<p>Send an IPI request to the PLM by using the CDO command to call XSecure_AesEncFinal API and returns the status of the IPI response</p>

<p>References <a class="el" href="group__xsecure__common__apis.html#gga48921cbba3a5713caf7d975bedbe36aca725ee7839a0af61500722276cdf5fe65">XSECURE_API_AES_ENCRYPT_FINAL</a>, and <a class="el" href="group__xsecure__mailbox__apis.html#ga6ac5f0da32dd8fb5fcd15a7e65b492bb">XSecure_ProcessMailbox()</a>.</p>

<p>Referenced by <a class="el" href="group__xsecure__kat__server__apis.html#gafe625810c2509e3d9b490d63c3861807">XSecure_AesEncryptKat()</a>, and <a class="el" href="group__xsecure__aes__server__apis.html#gabe78befff27daa757aecc436204e33af">XSecure_AesPerformOperation()</a>.</p>

</div>
</div>
<a class="anchor" id="ga23f9b2bfaf978518d82c19d8331c9cb8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XSecure_AesEncryptInit </td>
          <td>(</td>
          <td class="paramtype">XSecure_ClientInstance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__xsecure__aes__client__apis.html#ga3be7525f93a2e54baa60c3b1a9df262c">XSecure_AesKeySource</a>&#160;</td>
          <td class="paramname"><em>KeySrc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>IvAddr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends IPI request to EncryptInit the AES engine. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the client instance </td></tr>
    <tr><td class="paramname">KeySrc</td><td>Type of the Key </td></tr>
    <tr><td class="paramname">Size</td><td>Size of the Key </td></tr>
    <tr><td class="paramname">IvAddr</td><td>Address of the IV</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS If the Encrypt init is successful</li>
<li>XST_FAILURE If there is a failure </li>
</ul>
</dd></dl>
<p>Perform input parameter validation on InstancePtr. Return XST_FAILURE if input parameters are invalid</p>
<p>Link shared memory of size AesParams to AesParams structure for IPI usage. Validates the size of the shared memory whether the required size is available or not.</p>
<p>Send an IPI request to the PLM by using the CDO command to call XSecure_AesOperationInit API and returns the status of the IPI response.</p>

<p>References <a class="el" href="group__xsecure__common__apis.html#gga48921cbba3a5713caf7d975bedbe36acabf47c27ddc6dcbdce2694869cea603aa">XSECURE_API_AES_OP_INIT</a>, <a class="el" href="group__xsecure__common__apis.html#ga4dc28d692c8e56b1837e73a956ddec26">XSecure_DCacheFlushRange</a>, <a class="el" href="group__xsecure__helper__server__apis.html#ggadcb99879df57dfcbb96293bd161933beae6aac4a684081de8c6c970ef364fd091">XSECURE_ENCRYPT</a>, and <a class="el" href="group__xsecure__mailbox__apis.html#ga6ac5f0da32dd8fb5fcd15a7e65b492bb">XSecure_ProcessMailbox()</a>.</p>

<p>Referenced by <a class="el" href="group__xsecure__aes__zynqmp__apis.html#gace1d0dd6146035c42a6ae0add6f0d09a">XSecure_AesEncryptData()</a>, and <a class="el" href="group__xsecure__kat__server__apis.html#gafe625810c2509e3d9b490d63c3861807">XSecure_AesEncryptKat()</a>.</p>

</div>
</div>
<a class="anchor" id="ga162a8009f9d4983d841b517fe53d14c4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XSecure_AesEncryptUpdate </td>
          <td>(</td>
          <td class="paramtype">XSecure_ClientInstance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>InDataAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>OutDataAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>IsLast</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends IPI request to update the input data to AES engine for encryption. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the client instance </td></tr>
    <tr><td class="paramname">InDataAddr</td><td>Address of the input data which needs to be encrypted </td></tr>
    <tr><td class="paramname">OutDataAddr</td><td>Address of the buffer where the encrypted data to be updated </td></tr>
    <tr><td class="paramname">Size</td><td>Size of the input data to be encrypted </td></tr>
    <tr><td class="paramname">IsLast</td><td>If this is the last update of data to be encrypted, this parameter should be set to TRUE otherwise FALSE</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS On successful encryption of the data</li>
<li>XST_FAILURE On failure </li>
</ul>
</dd></dl>
<p>Perform input parameter validation on InstancePtr. Return XST_FAILURE if input parameters are invalid</p>
<p>Link shared memory of size EncInAddr to EncInAddr structure for IPI usage. Validates the size of the shared memory whether the required size is available or not.</p>
<p>Send an IPI request to the PLM by using the CDO command to call XSecure_AesEncUpdate API and returns the status of the IPI response.</p>

<p>References <a class="el" href="group__xsecure__common__apis.html#gga48921cbba3a5713caf7d975bedbe36acad8f88bc04c0bf662cf12324269d81ff2">XSECURE_API_AES_ENCRYPT_UPDATE</a>, <a class="el" href="group__xsecure__common__apis.html#ga4dc28d692c8e56b1837e73a956ddec26">XSecure_DCacheFlushRange</a>, and <a class="el" href="group__xsecure__mailbox__apis.html#ga6ac5f0da32dd8fb5fcd15a7e65b492bb">XSecure_ProcessMailbox()</a>.</p>

<p>Referenced by <a class="el" href="group__xsecure__aes__zynqmp__apis.html#gace1d0dd6146035c42a6ae0add6f0d09a">XSecure_AesEncryptData()</a>, and <a class="el" href="group__xsecure__kat__server__apis.html#gafe625810c2509e3d9b490d63c3861807">XSecure_AesEncryptKat()</a>.</p>

</div>
</div>
<a class="anchor" id="ga2c662c76ab7afdb97977628d81604ec1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XSecure_AesGmacUpdateAad </td>
          <td>(</td>
          <td class="paramtype">XSecure_ClientInstance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>AadAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>AadSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>IsLastChunkSrc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends IPI request to update AAD data to AES engine. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the client instance </td></tr>
    <tr><td class="paramname">AadAddr</td><td>Address of the Aad </td></tr>
    <tr><td class="paramname">AadSize</td><td>Size of the Aad data </td></tr>
    <tr><td class="paramname">IsLastChunkSrc</td><td>If this is the last update of data, this parameter should be set to TRUE otherwise FALSE</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS If the Aad update is successful</li>
<li>XST_FAILURE If there is a failure</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>To generate GMAC, this API must be called by setting IsLastChunkSrc as TRUE for the last update followed by XSecure_AesEncryptFinal or XSecure_AesDecryptFinal API call to generate or validate GMAC tag </dd></dl>
<p>Send an IPI request to the PLM by using the CDO command to call XSecure_AesUpdateAad API and returns the status of the IPI response</p>

<p>References <a class="el" href="group__xsecure__common__apis.html#gga48921cbba3a5713caf7d975bedbe36aca6febb16fb9387879f8ffb7c7a51e7064">XSECURE_API_AES_UPDATE_AAD</a>, and <a class="el" href="group__xsecure__mailbox__apis.html#ga6ac5f0da32dd8fb5fcd15a7e65b492bb">XSecure_ProcessMailbox()</a>.</p>

<p>Referenced by <a class="el" href="group__xsecure__aes__client__apis.html#gab23a3dfb8aadcc94500201af5f25b659">XSecure_AesUpdateAad()</a>.</p>

</div>
</div>
<a class="anchor" id="ga2768b0d967bc577d2721682881592bb7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XSecure_AesInitialize </td>
          <td>(</td>
          <td class="paramtype">XSecure_ClientInstance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends IPI request to initialize the AES engine. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the client instance</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS If the initialization is successful</li>
<li>XST_FAILURE If there is a failure </li>
</ul>
</dd></dl>

<p>Referenced by <a class="el" href="group__xsecure__apis.html#ga2b8b3f8c925d15be80cff15f248c1532">SecureAesExample()</a>, <a class="el" href="group__xsecure__aes__server__apis.html#gaa58a05547f6ae883c23823bf0f3bed7d">XSecure_AesInit()</a>, and <a class="el" href="group__xsecure__generic__server__apis.html#ga9aa6e139b83f8847145b76986672d29a">XSecure_AesShaInit()</a>.</p>

</div>
</div>
<a class="anchor" id="ga5336eb4fdbdbd4c48776776c4524653e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XSecure_AesKekDecrypt </td>
          <td>(</td>
          <td class="paramtype">XSecure_ClientInstance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>IvAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__xsecure__aes__client__apis.html#ga3be7525f93a2e54baa60c3b1a9df262c">XSecure_AesKeySource</a>&#160;</td>
          <td class="paramname"><em>DstKeySrc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__xsecure__aes__client__apis.html#ga3be7525f93a2e54baa60c3b1a9df262c">XSecure_AesKeySource</a>&#160;</td>
          <td class="paramname"><em>DecKeySrc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__xsecure__aes__client__apis.html#ga55cd9d64e04cce6a57d729b67a5f0c47">XSecure_AesKeySize</a>&#160;</td>
          <td class="paramname"><em>Size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends IPI request to decrypt the key in KEK key form. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the client instance </td></tr>
    <tr><td class="paramname">IvAddr</td><td>Address of IV holding buffer for decryption of the key </td></tr>
    <tr><td class="paramname">DecKeySrc</td><td>Select key source which holds KEK and needs to be decrypted </td></tr>
    <tr><td class="paramname">DstKeySrc</td><td>Select the key in which decrypted red key should be updated </td></tr>
    <tr><td class="paramname">Size</td><td>Size of the key</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS On successful key decryption</li>
<li>XSECURE_AES_INVALID_PARAM On invalid parameter</li>
<li>XST_FAILURE If there is a failure </li>
</ul>
</dd></dl>
<p>Perform input parameter validation on InstancePtr. Return XST_FAILURE if input parameters are invalid</p>
<p>Send an IPI request to the PLM by using the CDO command to call XSecure_AesDecryptKek API and returns the status of the IPI response</p>

<p>References <a class="el" href="group__xsecure__aes__client__apis.html#gaf7eae7e456a1d11d550afb26e22ea199">XSECURE_AES_INVALID_PARAM</a>, <a class="el" href="group__xsecure__aes__server__apis.html#gga55cd9d64e04cce6a57d729b67a5f0c47a2e5b9343d2f9cc0e355b413d6a3848e3">XSECURE_AES_KEY_SIZE_128</a>, <a class="el" href="group__xsecure__common__apis.html#gga48921cbba3a5713caf7d975bedbe36acad5d672c120603105e990a4a321938cb1">XSECURE_API_AES_KEK_DECRYPT</a>, and <a class="el" href="group__xsecure__mailbox__apis.html#ga6ac5f0da32dd8fb5fcd15a7e65b492bb">XSecure_ProcessMailbox()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa3c4b19232e0c5fa8cf14d69410e31e7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XSecure_AesKeyZero </td>
          <td>(</td>
          <td class="paramtype">XSecure_ClientInstance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__xsecure__aes__client__apis.html#ga3be7525f93a2e54baa60c3b1a9df262c">XSecure_AesKeySource</a>&#160;</td>
          <td class="paramname"><em>KeySrc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends IPI request to zeroize selected AES key storage register. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the client instance </td></tr>
    <tr><td class="paramname">KeySrc</td><td>Select the key source which needs to be zeroized</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS When key zeroization is success</li>
<li>XST_FAILURE On failure </li>
</ul>
</dd></dl>
<p>Perform input parameter validation on InstancePtr. Return XST_FAILURE if input parameters are invalid</p>
<p>Send an IPI request to the PLM by using the CDO command to call XSecure_AesKeyZeroize API and returns the status of the IPI response.</p>

<p>References <a class="el" href="group__xsecure__common__apis.html#gga48921cbba3a5713caf7d975bedbe36aca16f54fa4047812544017288d499c2ddb">XSECURE_API_AES_KEY_ZERO</a>, and <a class="el" href="group__xsecure__mailbox__apis.html#ga6ac5f0da32dd8fb5fcd15a7e65b492bb">XSecure_ProcessMailbox()</a>.</p>

<p>Referenced by <a class="el" href="group__xsecure__aes__zynqmp__apis.html#ga9d60cf825dcf6e7eb30d734f01014266">XSecure_AesDecrypt()</a>, <a class="el" href="group__xsecure__kat__server__apis.html#gaed0ff5bd2a251e178b5c985cabbd5814">XSecure_AesDecryptCmKat()</a>, <a class="el" href="group__xsecure__aes__zynqmp__apis.html#ga78edf33e47f7a19be135b194af962d2c">XSecure_AesDecryptInit()</a>, <a class="el" href="group__xsecure__kat__server__apis.html#ga0567b89c7436b6925d6f64ef15b628e0">XSecure_AesDecryptKat()</a>, <a class="el" href="group__xsecure__aes__zynqmp__apis.html#ga4db7441166b2271ceaac1ac859a15c60">XSecure_AesDecryptUpdate()</a>, <a class="el" href="group__xsecure__aes__server__apis.html#ga6422d39ce630dc928daba92a65da4c56">XSecure_AesEcbDecrypt()</a>, <a class="el" href="group__xsecure__aes__zynqmp__apis.html#ga7b2c563fa3324f4f329b775f314b96c4">XSecure_AesEncryptInit()</a>, <a class="el" href="group__xsecure__kat__server__apis.html#gafe625810c2509e3d9b490d63c3861807">XSecure_AesEncryptKat()</a>, <a class="el" href="group__xsecure__aes__zynqmp__apis.html#gabdefc1128b9769010e42070e15f06d74">XSecure_AesEncryptUpdate()</a>, <a class="el" href="group__xsecure__aes__server__apis.html#ga4da9ead453ef1dbeebefeebb377eb94d">XSecure_AesKeyUnwrap()</a>, and <a class="el" href="group__xsecure__aes__server__apis.html#ga6b5414d0bffdebf14b418d2d05135faa">XSecure_AesKeyZeroize()</a>.</p>

</div>
</div>
<a class="anchor" id="ga1be5abccbec8cce45963a979c72828e1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XSecure_AesPerformOperation </td>
          <td>(</td>
          <td class="paramtype">const XSecure_ClientInstance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="struct_x_secure___aes_data_block_params.html">XSecure_AesDataBlockParams</a> *&#160;</td>
          <td class="paramname"><em>AesDataParams</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function calls IPI request to encrypt/decrypt a single block of data along with update AAD/GMAC based on the user's choice. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the client instance </td></tr>
    <tr><td class="paramname">KeySrc</td><td>Type of the key </td></tr>
    <tr><td class="paramname">AesDataParams</td><td>Pointer to the Aes parameters</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS On success</li>
<li>XSECURE_AES_INVALID_PARAM On invalid parameter</li>
<li>XST_FAILURE On failure </li>
</ul>
</dd></dl>
<p>AES Encrypt/Decrypt Init operation</p>
<p>AES Aad Update</p>
<p>Set GMAC enable flag to TRUE for GMAC operation and FALSE for GCM operation</p>
<p>AES Encrypt/Decrypt Final</p>
<p>Send an IPI request to the PLM by using the CDO command to call XSecure_AesPerformOperation API and returns the status of the IPI response</p>

<p>References <a class="el" href="struct_x_secure___aes_data_block_params.html#a9ef0690b92cb373e4edba5f737c4e8ec">XSecure_AesDataBlockParams::AadAddr</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#a89359753467bd723766dd276a129fb8a">XSecure_AesDataBlockParams::AadSize</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#abba392dfef2cf097328fa01ebdcf4a0b">XSecure_AesDataBlockParams::GcmTagAddr</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#ab305c36cde6d062cb2d9ec684eb884f3">XSecure_AesDataBlockParams::InDataAddr</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#a70006cade009be77a4bfd46988dffd07">XSecure_AesDataBlockParams::IsGmacEnable</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#a5de1a144f2ca49b828bfd35dfca31098">XSecure_AesDataBlockParams::IsUpdateAadEn</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#a32a405aa0b3b7347ea011c06e82112bb">XSecure_AesDataBlockParams::IvAddr</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#a5cb25284ffcb35d77f835feba3c80cca">XSecure_AesDataBlockParams::KeySize</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#a9feccfc797d95c76df391388198737a7">XSecure_AesDataBlockParams::KeySrc</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#a01bac95e3068af0ce8456da0be15ee99">XSecure_AesDataBlockParams::OperationId</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#a0a399c993534db75688840d98da985ff">XSecure_AesDataBlockParams::OutDataAddr</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#a15ca86870bbcfea76408b68684b8fb39">XSecure_AesDataBlockParams::Size</a>, <a class="el" href="group__xsecure__aes__client__apis.html#gaf7eae7e456a1d11d550afb26e22ea199">XSECURE_AES_INVALID_PARAM</a>, <a class="el" href="group__xsecure__common__apis.html#gga48921cbba3a5713caf7d975bedbe36acaffa8a13644e65d5e7776e9198365c5cd">XSECURE_API_AES_PERFORM_OPERATION</a>, <a class="el" href="group__xsecure__common__apis.html#ga4dc28d692c8e56b1837e73a956ddec26">XSecure_DCacheFlushRange</a>, and <a class="el" href="group__xsecure__mailbox__apis.html#ga6ac5f0da32dd8fb5fcd15a7e65b492bb">XSecure_ProcessMailbox()</a>.</p>

<p>Referenced by <a class="el" href="group__xsecure__aes__server__apis.html#ga3d0efd64b0f7ebbdc1b3be80aa10a840">XSecure_AesIpiHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="ga92901f6856f8e7ea38caac86fb44e10b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XSecure_AesPerformOperationAndZeroizeKey </td>
          <td>(</td>
          <td class="paramtype">XSecure_ClientInstance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>KeyAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="struct_x_secure___aes_data_block_params.html">XSecure_AesDataBlockParams</a> *&#160;</td>
          <td class="paramname"><em>AesDataParams</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function calls IPI request to perform below operation: </p>
<pre class="fragment">            - Write key into the key source provided by the user
            - Encrypt/decrypt a single block of data using the provided key
            - Zeroize the key once the AES operation is done
</pre><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the XSecure_ClientInstance </td></tr>
    <tr><td class="paramname">KeyAddr</td><td>Address of the key to be used for AES operation </td></tr>
    <tr><td class="paramname">AesDataParams</td><td>Pointer to the <a class="el" href="struct_x_secure___aes_data_block_params.html" title="Structure for input parameters for AES Encryption and Decryption of single block of data...">XSecure_AesDataBlockParams</a> structure variable</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS On success</li>
<li>XST_FAILURE On failure </li>
</ul>
</dd></dl>
<p>Send an IPI request to the PLM by using the CDO command to call XSecure_AesOpNZeroizeKey API and returns the status of the IPI response.</p>

<p>References <a class="el" href="struct_x_secure___aes_data_block_params.html#a9ef0690b92cb373e4edba5f737c4e8ec">XSecure_AesDataBlockParams::AadAddr</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#a89359753467bd723766dd276a129fb8a">XSecure_AesDataBlockParams::AadSize</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#abba392dfef2cf097328fa01ebdcf4a0b">XSecure_AesDataBlockParams::GcmTagAddr</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#ab305c36cde6d062cb2d9ec684eb884f3">XSecure_AesDataBlockParams::InDataAddr</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#a70006cade009be77a4bfd46988dffd07">XSecure_AesDataBlockParams::IsGmacEnable</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#a5de1a144f2ca49b828bfd35dfca31098">XSecure_AesDataBlockParams::IsUpdateAadEn</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#a32a405aa0b3b7347ea011c06e82112bb">XSecure_AesDataBlockParams::IvAddr</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#a5cb25284ffcb35d77f835feba3c80cca">XSecure_AesDataBlockParams::KeySize</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#a9feccfc797d95c76df391388198737a7">XSecure_AesDataBlockParams::KeySrc</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#a01bac95e3068af0ce8456da0be15ee99">XSecure_AesDataBlockParams::OperationId</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#a0a399c993534db75688840d98da985ff">XSecure_AesDataBlockParams::OutDataAddr</a>, <a class="el" href="struct_x_secure___aes_data_block_params.html#a15ca86870bbcfea76408b68684b8fb39">XSecure_AesDataBlockParams::Size</a>, <a class="el" href="group__xsecure__common__apis.html#ga49179f0283044223009c733e01b79d5a">XSECURE_ADDR_HIGH_SHIFT</a>, <a class="el" href="group__xsecure__common__apis.html#gga48921cbba3a5713caf7d975bedbe36aca5dc57e832b3e25778fdd795e7fe19300">XSECURE_API_AES_PERFORM_OPERATION_AND_ZEROIZE_KEY</a>, <a class="el" href="group__xsecure__common__apis.html#ga4dc28d692c8e56b1837e73a956ddec26">XSecure_DCacheFlushRange</a>, and <a class="el" href="group__xsecure__mailbox__apis.html#ga6ac5f0da32dd8fb5fcd15a7e65b492bb">XSecure_ProcessMailbox()</a>.</p>

<p>Referenced by <a class="el" href="group__xsecure__aes__server__apis.html#ga1471a9dc9965ae80577a09aadafeeb53">XSecure_PlatAesIpiHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="ga2149f38c111ed53eec28fc05ac1afb1e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XSecure_AesSetDpaCm </td>
          <td>(</td>
          <td class="paramtype">XSecure_ClientInstance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>DpaCmCfg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends IPI request to enable/disable DpaCm in AES. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the client instance </td></tr>
    <tr><td class="paramname">DpaCmCfg</td><td>User choice to enable/disable DPA CM</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS If configuration is success</li>
<li>XST_FAILURE If there is a failure </li>
</ul>
</dd></dl>
<p>Send an IPI request to the PLM by using the CDO command to call XSecure_AesSetDpaCm API and returns the status of the IPI response</p>

<p>References <a class="el" href="group__xsecure__common__apis.html#gga48921cbba3a5713caf7d975bedbe36acadc717b63c9b0d4b8f7b3a54d932435de">XSECURE_API_AES_SET_DPA_CM</a>, and <a class="el" href="group__xsecure__mailbox__apis.html#ga6ac5f0da32dd8fb5fcd15a7e65b492bb">XSecure_ProcessMailbox()</a>.</p>

</div>
</div>
<a class="anchor" id="gab23a3dfb8aadcc94500201af5f25b659"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XSecure_AesUpdateAad </td>
          <td>(</td>
          <td class="paramtype">XSecure_ClientInstance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>AadAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>AadSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends IPI request to update AAD to AES engine. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the client instance </td></tr>
    <tr><td class="paramname">AadAddr</td><td>Address of the Aad </td></tr>
    <tr><td class="paramname">AadSize</td><td>Size of the Aad data</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS If the Aad update is successful</li>
<li>XST_FAILURE If there is a failure </li>
</ul>
</dd></dl>
<p>Send an IPI request to update AAD to AES engine with LastChunk as FALSE </p>

<p>References <a class="el" href="group__xsecure__aes__client__apis.html#ga2c662c76ab7afdb97977628d81604ec1">XSecure_AesGmacUpdateAad()</a>.</p>

<p>Referenced by <a class="el" href="group__xsecure__kat__server__apis.html#ga0567b89c7436b6925d6f64ef15b628e0">XSecure_AesDecryptKat()</a>, and <a class="el" href="group__xsecure__kat__server__apis.html#gafe625810c2509e3d9b490d63c3861807">XSecure_AesEncryptKat()</a>.</p>

</div>
</div>
<a class="anchor" id="ga056f80ac76299a3ed41102b9f21237e7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XSecure_AesWriteKey </td>
          <td>(</td>
          <td class="paramtype">XSecure_ClientInstance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__xsecure__aes__client__apis.html#ga3be7525f93a2e54baa60c3b1a9df262c">XSecure_AesKeySource</a>&#160;</td>
          <td class="paramname"><em>KeySrc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>KeyAddr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends IPI request to write the key provided into the specified AES key registers. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the client instance </td></tr>
    <tr><td class="paramname">KeySrc</td><td>Key Source to be selected to which provided key should be updated </td></tr>
    <tr><td class="paramname">Size</td><td>Size of the input key to be written </td></tr>
    <tr><td class="paramname">KeyAddr</td><td>Address of a buffer which should contain the key to be written</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS On successful key written on AES registers</li>
<li>XST_FAILURE On failure </li>
</ul>
</dd></dl>
<p>Send an IPI request to the PLM by using the CDO command to call XSecure_AesWriteKey API and returns the status of the IPI response</p>

<p>References <a class="el" href="group__xsecure__common__apis.html#gga48921cbba3a5713caf7d975bedbe36acab8155ff5779538f3fa2f7b8b2c3c251c">XSECURE_API_AES_WRITE_KEY</a>, and <a class="el" href="group__xsecure__mailbox__apis.html#ga6ac5f0da32dd8fb5fcd15a7e65b492bb">XSecure_ProcessMailbox()</a>.</p>

<p>Referenced by <a class="el" href="group__xsecure__kat__server__apis.html#ga0567b89c7436b6925d6f64ef15b628e0">XSecure_AesDecryptKat()</a>, <a class="el" href="group__xsecure__aes__server__apis.html#ga6422d39ce630dc928daba92a65da4c56">XSecure_AesEcbDecrypt()</a>, <a class="el" href="group__xsecure__kat__server__apis.html#gafe625810c2509e3d9b490d63c3861807">XSecure_AesEncryptKat()</a>, <a class="el" href="group__xsecure__aes__server__apis.html#ga4da9ead453ef1dbeebefeebb377eb94d">XSecure_AesKeyUnwrap()</a>, and <a class="el" href="group__xsecure__aes__server__apis.html#gaa7f952e1399a6303328d40d8e251460c">XSecure_AesKeyWrite()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
	<p class="footer">&copy; Copyright 2015-2022 Xilinx, Inc. All Rights Reserved.</p>
	<p class="footer">&copy; Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.</p>
</div>
</body>
</html>
